import java.util.Arrays;

public class Leetcode {
}

//leetcode:179:最大数
class Solution1 {
    public String largestNumber(int[] nums) {
        int n = nums.length;
        String[] strs = new String[n];
        //将每个数字转换成字符串
        for(int i = 0; i < n; i++) strs[i] = "" + nums[i];

        //让两个数按照两种拼接方式大的一方进行排序
        Arrays.sort(strs,(a, b) -> {
            return (b+a).compareTo(a+b);
        });

        StringBuffer ret = new StringBuffer();
        //将排好序的数连接成一个字符串
        for(int i = 0; i < n; i++) ret.append(strs[i]);

        //如果有前导0就代表，后续都为0，返回0
        if(ret.charAt(0) == '0') return "0";
        return ret.toString();
    }
}

//leetcode:376:摆动序列
class Solution2 {
    public int wiggleMaxLength(int[] nums) {
        int n = nums.length;
        if(n < 2) return n;
        int left = 0;
        int right = 0;
        int count = 0;
        for(int i = 0; i < n-1; i++){
            //得到当前数的后一个，让后一个数减去当前数得到结果
            right = nums[i+1]-nums[i];
            //如果等于0代表这两个数相同就跳过
            if(right == 0) continue;
            //如果这个数与当前的数相乘是小于0的，就代表，可以形成摆动序列，长度加一
            if(left * right <= 0) count++;
            left = right;//让left等于此时的right，更新位置
        }
        return count+1;
    }
}